/**
 * 项目辅助工具模块
 * 用于多项目架构下的项目相关功能
 */

const cacheHelper = require('./cache_helper.js');

// 当前项目缓存键
const CURRENT_PROJECT_KEY = 'CURRENT_PROJECT';

module.exports = {
  /**
   * 获取当前项目
   * @returns {String} 项目ID，默认为'oa'
   */
  getCurrentProject() {
    try {
      return wx.getStorageSync(CURRENT_PROJECT_KEY) || 'oa';
    } catch (error) {
      console.error('获取当前项目失败:', error);
      return 'oa';
    }
  },
  
  /**
   * 设置当前项目
   * @param {String} projectId 项目ID
   */
  setCurrentProject(projectId) {
    try {
      wx.setStorageSync(CURRENT_PROJECT_KEY, projectId);
      return true;
    } catch (error) {
      console.error('设置当前项目失败:', error);
      return false;
    }
  },
  
  /**
   * 获取项目配置
   * @param {String} projectId 项目ID
   * @returns {Object} 项目配置
   */
  getProjectConfig(projectId) {
    try {
      const projects = require('../config/projects.js');
      return projects[projectId] || {};
    } catch (error) {
      console.error('获取项目配置失败:', error);
      return {};
    }
  },
  
  /**
   * 获取当前项目配置
   * @returns {Object} 当前项目配置
   */
  getCurrentProjectConfig() {
    const projectId = this.getCurrentProject();
    return this.getProjectConfig(projectId);
  },
  
  /**
   * 获取项目列表
   * @returns {Array} 项目列表
   */
  getProjectList() {
    try {
      const projects = require('../config/projects.js');
      const projectIds = Object.keys(projects);
      
      return projectIds.map(id => ({
        id,
        name: projects[id].name || id,
        color: projects[id].color || '#000000',
        icon: projects[id].icon || ''
      }));
    } catch (error) {
      console.error('获取项目列表失败:', error);
      return [];
    }
  }
};
